Add a transform node reftest
authorMatthias Clasen <mclasen@redhat.com>
Mon, 9 Oct 2017 03:19:35 +0000 (23:19 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 9 Oct 2017 03:19:35 +0000 (23:19 -0400)
testsuite/gsk/test-render-nodes.c
testsuite/gsk/transform.node [new file with mode: 0644]
testsuite/gsk/transform.png [new file with mode: 0644]

index f24ddb5d03fe0d6db062847b69b35a6cbec886f9..0bae5f11465557a4e4c26ad80288fd827ee47e21 100644 (file)
@@ -378,6 +378,39 @@ cross_fades (void)
   return container;
 }
 
+static GskRenderNode *
+transform (void)
+{
+  GskRenderNode *node;
+  GskRenderNode *nodes[10];
+  GskRenderNode *container;
+  graphene_matrix_t scale;
+  graphene_matrix_t translate;
+  graphene_matrix_t matrix;
+  graphene_vec3_t axis;
+  graphene_vec3_init (&axis, 0.0, 0.0, 1.0);
+  int i;
+
+  node = ducky ();
+
+  for (i = 0; i < 10; i++)
+    {
+      graphene_matrix_init_rotate (&scale, 20.0 * i, &axis);
+      graphene_matrix_init_translate (&translate, &(const graphene_point3d_t) { i* 110, 0, 0 });
+      graphene_matrix_multiply (&scale, &translate, &matrix);
+      nodes[i] = gsk_transform_node_new (node, &matrix);
+    }
+
+  container = gsk_container_node_new (nodes, 5);
+
+  for (i = 0; i < 10; i++)
+    gsk_render_node_unref (nodes[i]);
+
+  gsk_render_node_unref (node);
+
+  return container;
+}
+
 static const struct {
   const char *name;
   GskRenderNode * (* func) (void);
@@ -389,6 +422,7 @@ static const struct {
   { "cross-fade.node", cross_fade },
   { "blendmodes.node", blendmodes },
   { "cross-fades.node", cross_fades },
+  { "transform.node", transform },
 };
 
 /*** test setup ***/
diff --git a/testsuite/gsk/transform.node b/testsuite/gsk/transform.node
new file mode 100644 (file)
index 0000000..d2f3736
Binary files /dev/null and b/testsuite/gsk/transform.node differ
diff --git a/testsuite/gsk/transform.png b/testsuite/gsk/transform.png
new file mode 100644 (file)
index 0000000..5d54886
Binary files /dev/null and b/testsuite/gsk/transform.png differ